package com.sunny.fetch.pojo;

import javax.persistence.*;

@Table(name = "f_opt_basic")
public class FOptBasic {
    @Id
    private Long tid;

    /**
     * TS代码
     */
    @Column(name = "ts_code")
    private String tsCode;

    /**
     * 交易市场
     */
    private String exchange;

    /**
     * 合约名称
     */
    private String name;

    /**
     * 合约单位
     */
    @Column(name = "per_unit")
    private String perUnit;

    /**
     * 标准合约代码
     */
    @Column(name = "opt_code")
    private String optCode;

    /**
     * 合约类型
     */
    @Column(name = "opt_type")
    private String optType;

    /**
     * 期权类型
     */
    @Column(name = "call_put")
    private String callPut;

    /**
     * 行权方式
     */
    @Column(name = "exercise_type")
    private String exerciseType;

    /**
     * 行权价格
     */
    @Column(name = "exercise_price")
    private Float exercisePrice;

    /**
     * 结算月
     */
    @Column(name = "s_month")
    private String sMonth;

    /**
     * 到期日
     */
    @Column(name = "maturity_date")
    private String maturityDate;

    /**
     * 挂牌基准价
     */
    @Column(name = "list_price")
    private Float listPrice;

    /**
     * 开始交易日期
     */
    @Column(name = "list_date")
    private String listDate;

    /**
     * 最后交易日期
     */
    @Column(name = "delist_date")
    private String delistDate;

    /**
     * 最后行权日期
     */
    @Column(name = "last_edate")
    private String lastEdate;

    /**
     * 最后交割日期
     */
    @Column(name = "last_ddate")
    private String lastDdate;

    /**
     * 报价单位
     */
    @Column(name = "quote_unit")
    private String quoteUnit;

    /**
     * 最小价格波幅
     */
    @Column(name = "min_price_chg")
    private String minPriceChg;

    public FOptBasic(Long tid, String tsCode, String exchange, String name, String perUnit, String optCode, String optType, String callPut, String exerciseType, Float exercisePrice, String sMonth, String maturityDate, Float listPrice, String listDate, String delistDate, String lastEdate, String lastDdate, String quoteUnit, String minPriceChg) {
        this.tid = tid;
        this.tsCode = tsCode;
        this.exchange = exchange;
        this.name = name;
        this.perUnit = perUnit;
        this.optCode = optCode;
        this.optType = optType;
        this.callPut = callPut;
        this.exerciseType = exerciseType;
        this.exercisePrice = exercisePrice;
        this.sMonth = sMonth;
        this.maturityDate = maturityDate;
        this.listPrice = listPrice;
        this.listDate = listDate;
        this.delistDate = delistDate;
        this.lastEdate = lastEdate;
        this.lastDdate = lastDdate;
        this.quoteUnit = quoteUnit;
        this.minPriceChg = minPriceChg;
    }

    public FOptBasic() {
        super();
    }

    /**
     * @return tid
     */
    public Long getTid() {
        return tid;
    }

    /**
     * @param tid
     */
    public void setTid(Long tid) {
        this.tid = tid;
    }

    /**
     * 获取TS代码
     *
     * @return ts_code - TS代码
     */
    public String getTsCode() {
        return tsCode;
    }

    /**
     * 设置TS代码
     *
     * @param tsCode TS代码
     */
    public void setTsCode(String tsCode) {
        this.tsCode = tsCode;
    }

    /**
     * 获取交易市场
     *
     * @return exchange - 交易市场
     */
    public String getExchange() {
        return exchange;
    }

    /**
     * 设置交易市场
     *
     * @param exchange 交易市场
     */
    public void setExchange(String exchange) {
        this.exchange = exchange;
    }

    /**
     * 获取合约名称
     *
     * @return name - 合约名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置合约名称
     *
     * @param name 合约名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取合约单位
     *
     * @return per_unit - 合约单位
     */
    public String getPerUnit() {
        return perUnit;
    }

    /**
     * 设置合约单位
     *
     * @param perUnit 合约单位
     */
    public void setPerUnit(String perUnit) {
        this.perUnit = perUnit;
    }

    /**
     * 获取标准合约代码
     *
     * @return opt_code - 标准合约代码
     */
    public String getOptCode() {
        return optCode;
    }

    /**
     * 设置标准合约代码
     *
     * @param optCode 标准合约代码
     */
    public void setOptCode(String optCode) {
        this.optCode = optCode;
    }

    /**
     * 获取合约类型
     *
     * @return opt_type - 合约类型
     */
    public String getOptType() {
        return optType;
    }

    /**
     * 设置合约类型
     *
     * @param optType 合约类型
     */
    public void setOptType(String optType) {
        this.optType = optType;
    }

    /**
     * 获取期权类型
     *
     * @return call_put - 期权类型
     */
    public String getCallPut() {
        return callPut;
    }

    /**
     * 设置期权类型
     *
     * @param callPut 期权类型
     */
    public void setCallPut(String callPut) {
        this.callPut = callPut;
    }

    /**
     * 获取行权方式
     *
     * @return exercise_type - 行权方式
     */
    public String getExerciseType() {
        return exerciseType;
    }

    /**
     * 设置行权方式
     *
     * @param exerciseType 行权方式
     */
    public void setExerciseType(String exerciseType) {
        this.exerciseType = exerciseType;
    }

    /**
     * 获取行权价格
     *
     * @return exercise_price - 行权价格
     */
    public Float getExercisePrice() {
        return exercisePrice;
    }

    /**
     * 设置行权价格
     *
     * @param exercisePrice 行权价格
     */
    public void setExercisePrice(Float exercisePrice) {
        this.exercisePrice = exercisePrice;
    }

    /**
     * 获取结算月
     *
     * @return s_month - 结算月
     */
    public String getsMonth() {
        return sMonth;
    }

    /**
     * 设置结算月
     *
     * @param sMonth 结算月
     */
    public void setsMonth(String sMonth) {
        this.sMonth = sMonth;
    }

    /**
     * 获取到期日
     *
     * @return maturity_date - 到期日
     */
    public String getMaturityDate() {
        return maturityDate;
    }

    /**
     * 设置到期日
     *
     * @param maturityDate 到期日
     */
    public void setMaturityDate(String maturityDate) {
        this.maturityDate = maturityDate;
    }

    /**
     * 获取挂牌基准价
     *
     * @return list_price - 挂牌基准价
     */
    public Float getListPrice() {
        return listPrice;
    }

    /**
     * 设置挂牌基准价
     *
     * @param listPrice 挂牌基准价
     */
    public void setListPrice(Float listPrice) {
        this.listPrice = listPrice;
    }

    /**
     * 获取开始交易日期
     *
     * @return list_date - 开始交易日期
     */
    public String getListDate() {
        return listDate;
    }

    /**
     * 设置开始交易日期
     *
     * @param listDate 开始交易日期
     */
    public void setListDate(String listDate) {
        this.listDate = listDate;
    }

    /**
     * 获取最后交易日期
     *
     * @return delist_date - 最后交易日期
     */
    public String getDelistDate() {
        return delistDate;
    }

    /**
     * 设置最后交易日期
     *
     * @param delistDate 最后交易日期
     */
    public void setDelistDate(String delistDate) {
        this.delistDate = delistDate;
    }

    /**
     * 获取最后行权日期
     *
     * @return last_edate - 最后行权日期
     */
    public String getLastEdate() {
        return lastEdate;
    }

    /**
     * 设置最后行权日期
     *
     * @param lastEdate 最后行权日期
     */
    public void setLastEdate(String lastEdate) {
        this.lastEdate = lastEdate;
    }

    /**
     * 获取最后交割日期
     *
     * @return last_ddate - 最后交割日期
     */
    public String getLastDdate() {
        return lastDdate;
    }

    /**
     * 设置最后交割日期
     *
     * @param lastDdate 最后交割日期
     */
    public void setLastDdate(String lastDdate) {
        this.lastDdate = lastDdate;
    }

    /**
     * 获取报价单位
     *
     * @return quote_unit - 报价单位
     */
    public String getQuoteUnit() {
        return quoteUnit;
    }

    /**
     * 设置报价单位
     *
     * @param quoteUnit 报价单位
     */
    public void setQuoteUnit(String quoteUnit) {
        this.quoteUnit = quoteUnit;
    }

    /**
     * 获取最小价格波幅
     *
     * @return min_price_chg - 最小价格波幅
     */
    public String getMinPriceChg() {
        return minPriceChg;
    }

    /**
     * 设置最小价格波幅
     *
     * @param minPriceChg 最小价格波幅
     */
    public void setMinPriceChg(String minPriceChg) {
        this.minPriceChg = minPriceChg;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", tid=").append(tid);
        sb.append(", tsCode=").append(tsCode);
        sb.append(", exchange=").append(exchange);
        sb.append(", name=").append(name);
        sb.append(", perUnit=").append(perUnit);
        sb.append(", optCode=").append(optCode);
        sb.append(", optType=").append(optType);
        sb.append(", callPut=").append(callPut);
        sb.append(", exerciseType=").append(exerciseType);
        sb.append(", exercisePrice=").append(exercisePrice);
        sb.append(", sMonth=").append(sMonth);
        sb.append(", maturityDate=").append(maturityDate);
        sb.append(", listPrice=").append(listPrice);
        sb.append(", listDate=").append(listDate);
        sb.append(", delistDate=").append(delistDate);
        sb.append(", lastEdate=").append(lastEdate);
        sb.append(", lastDdate=").append(lastDdate);
        sb.append(", quoteUnit=").append(quoteUnit);
        sb.append(", minPriceChg=").append(minPriceChg);
        sb.append("]");
        return sb.toString();
    }
}